#include <vector>
#include <iostream>

using namespace std;

struct Point {
  int x;
  int y;
};

// pt1 < pt2
// operator - 重定义 C++ 操作符
// const 定义一个常量，常量是不能修改的
bool operator<(const Point &pt1, const Point &pt2) {
  return pt1.x < pt2.x;
}

// 如何才能够接受平面里所有的点作为参数呢？
// vector<Point>
double maxTriangle(vector<Point> points) {
  double maxArea = 0;
  
  // 要先把 points 按照 x 坐标从大到小排序
  sort(points.begin(), points.end());

  for (Point pt : points) {
    cout<<pt.x<<","<<pt.y<<endl;
  }
  cout<<endl;

  // 遍历 points
  // 对于其中的每一个点 point，先找和这个点在平行 X 轴方向的其他点 （Y 坐标相同的点）
  // 再找和这点在平行 Y 轴方向的其它点 （X 坐标相同的点）
  // 这时，我们就有三个点了
  // 计算这个三角形的面积
  // 比较最大值和当前三角形的面积

  return 0;
}


int main(int argc, char const *argv[])
{
  /* code */
  vector<Point> points {
    Point {2, 0},
    Point {0, 0},
    Point {0, 2},
    Point {1, 1}
  };

  maxTriangle(points);

  return 0;
}
